package cn.feng.thinkInJava.a1_7_复用类.reusing.a7_02_00;

//: reusing/Detergent.java
// Inheritance syntax & properties.
import static net.mindview.util.Print.*;

class Cleanser
{
	private String s="Cleanser";
	
	public void append(String a)
	{
		s+=a;
	}
	
	public void dilute()
	{
		append(" dilute()");
	}
	
	public void apply()
	{
		append(" apply()");
	}
	
	public void scrub()
	{
		append(" scrub()");
	}
	
	public String toString()
	{
		return s;
	}
	
	public static void main(String[] args)
	{
		Cleanser x=new Cleanser();
		x.dilute();
		x.apply();
		x.scrub();
		print(x);
	}
}

/**
 * 继承语法
 * 
 * @author fengyu
 * @date 2015年8月9日
 */
public class Detergent extends Cleanser
{
	// Change a method:
	public void scrub()
	{
		append(" Detergent.scrub()");
		super.scrub(); // Call base-class version
	}
	
	// Add methods to the interface:
	public void foam()
	{
		append(" foam()");
	}
	
	// Test the new class:
	public static void main(String[] args)
	{
		Detergent x=new Detergent();
		x.dilute();
		x.apply();
		x.scrub();
		x.foam();
		print(x);
		print("Testing base class:");
		Cleanser.main(args);
	}
} /* Output:
Cleanser dilute() apply() Detergent.scrub() scrub() foam()
Testing base class:
Cleanser dilute() apply() scrub()
*///:~
